package com.pay.model.interface_parameter;

import com.pay.utils.validate.vali_annotation.BaseValidate;
import com.pay.utils.validate.vali_annotation.DoubleIllegal;
import com.pay.utils.validate.vali_annotation.IntegerIllegal;
import com.pay.utils.validate.vali_annotation.RequireField;


/**
 * 微信支付授权码
 *
 * @author MENG
 * @version 2019/2/20
 * @see
 */
public class WxPayAuthCodeParam extends BaseValidate
{
    /**
     * 微信支付分配的公众账号ID（企业号corpid即为此appId）
     */
    @RequireField
    private String appId;

    /**
     * 微信支付分配的商户号
     */
    @RequireField
    private String mchId;

    /**
     * 微信APIKEY
     */
    @RequireField
    private String apiKey;

    /**
     * 支付宝服务器主动通知商户服务器里指定的页面http/https路径。
     */
    @RequireField
    private String notifyUrl;

    /**
     * 订单号 唯一（应用程序中）
     */
    @RequireField
    private String orderNo;

    /**
     * 订单价格（应用程序中）
     */
    @RequireField
    @DoubleIllegal
    private String totalAmount;

    /**
     * 订单描述（应用程序中）
     */
    @RequireField
    private String subject;

    /**
     * 该笔订单允许的最晚付款时间，逾期将关闭交易，从生成二维码开始计时。
     *
     * 单位:分钟
     */
    @RequireField
    @IntegerIllegal
    private String timeoutExpress;

    /**
     * 支付授权码
     */
    @RequireField
    private String authCode;//授权码


    public String getAppId()
    {
        return appId;
    }

    public void setAppId(String appId)
    {
        this.appId = appId;
    }

    public String getMchId()
    {
        return mchId;
    }

    public void setMchId(String mchId)
    {
        this.mchId = mchId;
    }

    public String getApiKey()
    {
        return apiKey;
    }

    public void setApiKey(String apiKey)
    {
        this.apiKey = apiKey;
    }

    public String getNotifyUrl()
    {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl)
    {
        this.notifyUrl = notifyUrl;
    }

    public String getOrderNo()
    {
        return orderNo;
    }

    public void setOrderNo(String orderNo)
    {
        this.orderNo = orderNo;
    }

    public String getTotalAmount()
    {
        return totalAmount;
    }

    public void setTotalAmount(String totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public String getSubject()
    {
        return subject;
    }

    public void setSubject(String subject)
    {
        this.subject = subject;
    }

    public String getTimeoutExpress()
    {
        return timeoutExpress;
    }

    public void setTimeoutExpress(String timeoutExpress)
    {
        this.timeoutExpress = timeoutExpress;
    }

    public String getAuthCode()
    {
        return authCode;
    }

    public void setAuthCode(String authCode)
    {
        this.authCode = authCode;
    }
}
